gpg: Gracefully handle no trusted.gpg.d directory
authorMatthew Barnes <mbarnes@redhat.com>
Thu, 28 May 2015 20:25:51 +0000 (16:25 -0400)
committerColin Walters <walters@verbum.org>
Thu, 4 Jun 2015 21:54:42 +0000 (17:54 -0400)
This is a deprecated fallback method anyway.  We prefer
remote-specific keyrings now.

https://bugzilla.gnome.org/750049

src/libostree/ostree-gpg-verifier.c

index 330362eefed02fdf838fcd16695cf40670506799..cb6d8f505bc7b3431ea3e4240bc9af6098bf7d34 100644 (file)
@@ -84,13 +84,16 @@ ostree_gpg_verifier_initable_init (GInitable        *initable,
   if (!default_keyring_path)
     default_keyring_path = DATADIR "/ostree/trusted.gpg.d/";
 
-  default_keyring_dir = g_file_new_for_path (default_keyring_path);
-  if (!_ostree_gpg_verifier_add_keyring_dir (self, default_keyring_dir,
-                                             cancellable, error))
+  if (g_file_test (default_keyring_path, G_FILE_TEST_IS_DIR))
     {
-      g_prefix_error (error, "Reading keyring directory '%s'",
-                      gs_file_get_path_cached (default_keyring_dir));
-      goto out;
+      default_keyring_dir = g_file_new_for_path (default_keyring_path);
+      if (!_ostree_gpg_verifier_add_keyring_dir (self, default_keyring_dir,
+                                                 cancellable, error))
+        {
+          g_prefix_error (error, "Reading keyring directory '%s'",
+                          gs_file_get_path_cached (default_keyring_dir));
+          goto out;
+        }
     }
 
   ret = TRUE;